package org.example.leetcode.addon.lc67;

public class Solution {
    public String addBinary(String a, String b) {
        int i = a.length() - 1;
        int j = b.length() - 1;
        int carry = 0;

        StringBuilder sb = new StringBuilder();
        while (i >= 0 || j >= 0) {
            int sum = 0;
            sum += carry;
            if (i >= 0) sum += a.charAt(i) - '0';
            if (j >= 0) sum += b.charAt(j) - '0';
            // 每一位相加后是多少，二进制逢二进一所以与2求余
            sb.append(sum % 2);
            // 是否进一
            carry = sum / 2;
            i--;
            j--;
        }
        // 从右到左加到最后是否进一位
        if (carry != 0) sb.append(carry);

        return sb.reverse().toString();
    }

    public static void main(String[] args) {
        Solution solu = new Solution();
        solu.addBinary("11", "1");
    }
}
